26 research outputs found
A Web-Based Tool for Analysing Normative Documents in English
Our goal is to use formal methods to analyse normative documents written in
English, such as privacy policies and service-level agreements. This requires
the combination of a number of different elements, including information
extraction from natural language, formal languages for model representation,
and an interface for property specification and verification. We have worked on
a collection of components for this task: a natural language extraction tool, a
suitable formalism for representing such documents, an interface for building
models in this formalism, and methods for answering queries asked of a given
model. In this work, each of these concerns is brought together in a web-based
tool, providing a single interface for analysing normative texts in English.
Through the use of a running example, we describe each component and
demonstrate the workflow established by our tool
Synchronous Agents, Verification, and Blame -- A Deontic View
A question we can ask of multi-agent systems is whether the agents'
collective interaction satisfies particular goals or specifications, which can
be either individual or collective. When a collaborative goal is not reached,
or a specification is violated, a pertinent question is whether any agent is to
blame. This paper considers a two-agent synchronous setting and a formal
language to specify when agents' collaboration is required. We take a deontic
approach and use obligations, permissions, and prohibitions to capture notions
of non-interference between agents. We also handle reparations, allowing
violations to be corrected or compensated. We give trace semantics to our
logic, and use it to define blame assignment for violations. We give an
automaton construction for the logic, which we use as the base for model
checking and blame analysis. We also further provide quantitative semantics
that is able to compare different interactions in terms of the required
reparations.Comment: To appear in ICTAC 202
An intelligent contract editor
Architects have computer tools that complement their specialist knowledge, as do engineers. Notaries, however, do not. This is in spite of the work that has been done in formally modelling contracts, the basic work of notaries being contract drafting. We are currently working on a solution aimed at aiding and complementing notaries’ expertise. This will take the form of adding in to MS Word, the document processing program of choice of local notaries. Some of the functionality envisioned includes cross-referencing with the laws of Malta, automatically identifying parties involved in a clause, tracking contract changes and conflict detection.peer-reviewe
Runtime Verification of Kotlin Coroutines
International audienceKotlin was introduced to Android as the recommended language for development. One of the unique functionalities of Kotlin is that of coroutines, which are lightweight tasks that can run concurrently inside threads. Programming using coroutines is difficult, among other things, because they can move between threads and behave unexpectedly. We introduce runtime verification in Kotlin. We provide a language to write properties and produce runtime monitors tailored to verify Kotlin coroutines. We identify, formalise and runtime verify seven properties about common runtime errors that are not easily identifiable by static analysis. To demonstrate the acceptability of the technique in real applications, we apply our framework to an in-house Android app and microbenchmarks and measure the execution time and memory overheads
Integrating natural language and formal analysis for legal documents
Although much research has gone into natural language legal document analysis, practical solutions to support legal document drafting
and reasoning are still limited in number and functionality. However given the textual basis of law there is much potential for NLP
techniques to aid in the context of drafting legal documents, in particular contracts. Furthermore, there is a body of work focusing on
the formal semantics of norms and legal notions which has direct applications in analysis of such documents. In this paper we present
our attempt to use several off-the-shelf NLP techniques to provide a more intelligent contract editing tool to lawyers. We exploit these
techniques to extract information from contract clauses to allow intelligent browsing of the contract. We use this surface analysis to
bridge the gap between the English text of a contract to its formal representation, which is then amenable to automated deduction,
specifically it allows us to identify conflicts in the contract.peer-reviewe
Contract automata with reparations
Although contract reparations have been extensively studied in the context
of deontic logics, there is not much literature using reparations in automatabased
deontic approaches. Contract automata is a recent approach to modelling the
notion of contract-based interaction between different parties using synchronous
composition. However, it lacks the notion of reparations for contract violations. In
this article we look into, and contrast different ways reparation can be added to an
automaton- and state-based contract approach, extending contract automata with
two forms of such clauses: catch-all reparations for violation and reparations for
specific violations.peer-reviewe
Control-flow residual analysis for symbolic automata
This research has received funding from the European Union’s Horizon 2020 research and innovation programme under grant number 666363.Where full static analysis of systems fails to scale up due to system size, dynamic monitoring has been increasingly used to ensure system correctness. The downside is, however, runtime overheads which are induced by the additional monitoring code instrumented. To address this issue, various approaches have been proposed in the literature to use static analysis in order to reduce monitoring overhead. In this paper we generalise existing work which uses control-flow static analysis to optimise properties specified as automata, and prove how similar analysis can be applied to more expressive symbolic automata - enabling reduction of monitoring instrumentation in the system, and also monitoring logic. We also present empirical evidence of the effectiveness of this approach through an analysis of the effect of monitoring overheads in a financial transaction system.peer-reviewe
Runtime verification using Valour
In this paper we give an overview of Valour, a runtime verification tool which has been developed in the context of a project to act as a backend verification tool for financial transaction software. A Valour script is written by the user and is then compiled into a verification system. Although, developed as part of a project, the tool has been designed as a stand-alone general-purpose verification engine with a particular emphasis on event consumption. The strong points of Valour when compared to other runtime verification tools is its focus on scalability and robustness.peer-reviewe